package com.redepronik.negosys.invfac.dao;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.redepronik.negosys.invfac.entity.Egreso;
import com.redepronik.negosys.utils.dao.GenericDaoImpl;

@Repository
public class EgresoDaoImpl extends GenericDaoImpl<Egreso, Long> implements
		EgresoDao {

	@Autowired
	public SessionFactory sessionFactory;

	private Session session;

	public String comprobarIndices(Egreso egreso) {
		String mensaje = null;
		Egreso objeto = null;
		objeto = obtenerPorTipoDocumentoIdAndCodigoDocumento(egreso
				.getTipodocumento().getTipodocumentoid(),
				egreso.getCodigodocumento());
		if (objeto != null) {
			mensaje = "El # de Documento ya existe";
		}
		return mensaje;
	}

	public Egreso obtenerPorTipoDocumentoIdAndCodigoDocumento(
			Integer tipoDocumentoId, String codigoDocumento) {
		session = sessionFactory.getCurrentSession();
		Egreso objeto = null;
		Query query = session
				.createQuery("from Egreso as i where i.tipoDocumentoId=:tipoDocumentoId and i.codigoDocumento=:codigoDocumento");
		query.setParameter("tipoDocumentoId", tipoDocumentoId);
		query.setParameter("codigoDocumento", codigoDocumento);
		objeto = (Egreso) query.uniqueResult();
		return objeto;
	}
}